function fromCntToICAAllEpoch(x,k,fs,data_dir)
% 这个函数，把整个长时间的EEG分为很多epoch单独存，是存到一个三维数组里面，第三维
% 就是表示不同的epoch，前两维是:通道和一个epoch的点数
% x是原始EEG数据矩阵，k是划分多少时间为一个epoch,秒为单位，fs是抽样率
% data_dir是数据目录
%
% 比如3秒是750，如果分751个点，中间间隔才是正好750的3秒，那就必须中间重合一个点，
% 如果直接分750,那就不重合，这样如果真的是做的ERP，时间不会搞乱。
%
% 一个epcoh的中间间隔点数,还有分就是250个点为一个epoch
d=k*fs;
%m行
m=size(x,1);
%n列
n=size(x,2);
% C是最多可以分为多少段，注意有重合点。所以还是用d算。
c=floor(n/(d));
UD=zeros(m,d,c);
%分成最多floor(n/k)个epoch
for i=1:c
    b=x(:,(i-1)*d+1:i*d);
    UD(:,:,i)=b;
end;
dim=size(UD,3);
for i=1:c
    savename=strcat('RawMat',int2str(i));
    filename=UD(:,:,i);
    cd(data_dir);
    save(savename,'filename');
    % 此方法就是保存的文件名字不会重复，
    % 但是其实不同文件名字的这些mat文件装载后，其实变量名都叫filename,这是没有办法的。
    % 因为变量名在等号左边，不能随i变，名字在左边是个常数，而像save(tr,x(:,:,i))试图
    % 跳过这个弊病也不行，因为save的第二个参数必须是个包含变量名的字符串，
    % 所以只要以后不会同时装载进matlab就不担心，即使是要同时装入，可以用使用这种
    % strcat('mset',int2str(i))的技巧，循环把这些mat文件读到一个三维数组里面。
end